package com.dream.dk.service;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.htmlparser.jericho.Element;
import net.htmlparser.jericho.Source;

import org.seasar.framework.log.Logger;

public class JsoupService {

	private static Logger logger = Logger.getLogger(JsoupService.class);

	/**
	 * Htmlパース
	 */
	public void getRecipe() {
		Source html = null;
		try {
			html = new Source(
					new URL(
							"http://theme.naver.jp/search?q=%E3%83%AC%E3%82%B7%E3%83%94%E6%A4%9C%E7%B4%A2"));
		} catch (MalformedURLException e1) {
		} catch (IOException e1) {
		}

		// XMLを相手にするなら下記を記述
		// html.fullSequentialParse();

		// ページのタイトル名を取得する。
		// <title>pop1.info</title>　
		List<Element> titleList = html.getAllElements("title"); // titleタグを全て抽出
		if (titleList != null) {
			for (Element title : titleList) {
				System.out.println(title.getContent().toString());
			}
		}

		// Link先とテキストコンテンツを取得したい場合
		Map<URL, String> links = new HashMap<URL, String>();
		String url = null;
		String text = null;
		List<Element> linkList = html.getAllElements("a"); // a要素全て取得
		try {
			if (linkList != null) {
				for (Element link : linkList) {
					url = link.getAttributeValue("href"); // a要素のhref属性値を取得
					text = link.getTextExtractor().toString(); // html上のテキストとして表現される所を取得
					if (url != null && text != null) {
						links.put(new URL(url), text);
					}
					// 初期化
					url = null;
					text = null;
				}
			}
		} catch (MalformedURLException e) {
			logger.warn("HTML Parsing Error Occoured.", e);
		}

	}
}
